package com.cskaoyan.day7._02_hashtable;

import java.util.Hashtable;

/**
 * @author Common-zhou
 * @since 2023-03-06 10:00
 */
public class Demo1 {
    public static void main(String[] args) {
        //1. Hashtable是Map接口的一个子实现
        //2. Hashtable底层结构是数组+链表 (和HashMap在jdk1.8之前是一样的)
        //3. 底层数组默认的初始长度11 ; 默认的扩容机制 2倍+1
        //4. 存储元素无序
        //5. 不允许存储重复的key:   (对key的重复的定义和HashMap一样)
        //    6. 不允许存储null作为key,   也不允许存储null作为value

        Hashtable<String, String> map = new Hashtable<>();
        map.put("zs", "18");
        map.put("ls", "20");
        map.put("wu", "20");

        //{ls=20, zs=18, wu=20}  无序的
        System.out.println(map);

        // 不允许使用null 作为key
        //map.put(null, "null的value");
        // 不允许使用null作为value
        //map.put("null", null);

        map.put("wu", "wu的value更新");
        System.out.println(map);

        //初始化长度和扩容机制
        // this(11, 0.75f);
        // 默认的初始化容量是11
        // 扩容在哪里？ 在添加方法
        map.put("Java", "20");

        // int newCapacity = (oldCapacity << 1) + 1;
        // 在addEntry中

    }
}
